home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-03 / qbnws202.zip / FASTPRNT.ZIP / FASTPRNT.BAS < prev    next >
BASIC Source File  |  1991-06-01  |  2KB  |  55 lines

  1. defint a-z
  2. 'Listing 1.5     QuickBASIC demonstration program.
  3.  
  4. ' PANELS.BAS
  5. '
  6. DECLARE SUB FastPrint (BYVAL Row%, BYVAL Col%, Message$, BYVAL Attr%)
  7. DECLARE FUNCTION Randy% (Lowest%, Highest%)
  8. DECLARE SUB Panel (Row%, Col%, Rows%, Cols%, Border%, Attr%)
  9.  
  10.     RANDOMIZE TIMER
  11.     Height%  = 25               ' Change for 43 or 50 row screens
  12.     Columns% = 80               ' Change for 40 column screens
  13.  
  14.     CLS
  15.     DO
  16.         Row% = Randy%(1, Height%)
  17.         Col% = Randy%(1, Columns%)
  18.         Rows% = Randy%(2, Height%)
  19.         IF Row% + Rows% > Height% THEN Rows% = Height% - Row%
  20.         Cols% = Randy%(2, Columns%)
  21.         IF Col% + Cols% > Columns% THEN Cols% = Columns% - Col%
  22.         Border% = Randy%(0, 2)
  23.         Attr% = Randy%(0, 255)
  24.         Panel Row%, Col%, Rows%, Cols%, Border%, Attr%
  25.     LOOP UNTIL INKEY$ = CHR$(27)
  26. END
  27.  
  28. SUB Panel (Row%, Col%, Rows%, Cols%, Border%, Attr%) STATIC
  29.     IF Cols% > 2 AND Rows% > 2 THEN
  30.        SELECT CASE Border%
  31.            CASE 1
  32.                 Top$ = "+" + STRING$(Cols% - 2, "-") + "+"
  33.                 Mdl$ = "|" + STRING$(Cols% - 2, " ") + "|"
  34.                 Bot$ = "+" + STRING$(Cols% - 2, "-") + "+"
  35.            CASE 2
  36.                 Top$ = "+" + STRING$(Cols% - 2, "-") + "+"
  37.                 Mdl$ = "|" + STRING$(Cols% - 2, " ") + "|"
  38.                 Bot$ = "+" + STRING$(Cols% - 2, "-") + "+"
  39.            CASE ELSE
  40.                 Top$ = SPACE$(Cols%): Mdl$ = Top$: Bot$ = Top$
  41.        END SELECT
  42.        FastPrint Row%, Col%, Top$, Attr%
  43.        FOR I% = 1 TO Rows% - 2
  44.            FastPrint Row% + I%, Col%, Mdl$, Attr%
  45.        NEXT I%
  46.        FastPrint Row% + I%, Col%, Bot$, Attr%
  47.     END IF
  48. END SUB
  49.  
  50. '   Return a random integer between the limits specified.
  51. '
  52. FUNCTION Randy% (Lowest%, Highest%) STATIC
  53.     Randy% = INT(RND * ((Highest% - Lowest%) + 1)) + Lowest%
  54. END FUNCTION
  55.